//
//  ZHStatusModel.swift
//  ZHWeibo
//
//  Created by user on 15/12/9.
//  Copyright © 2015年 heima. All rights reserved.
//

import UIKit

class ZHStatusModel: NSObject {
    //微博内容
    var text: String?
    //微博作者信息
    var user: ZHStatusUserModel?
    //微博的创建时间
    var created_at: String?
    //发布微博的平台
    var source: String?
    //转发数
    var reposts_count: Int = 0
    //评论数
    var comments_count: Int = 0
    //表态数
    var attitudes_count: Int = 0
    //微博内容
    var retweeted_status: ZHStatusModel?
    
    //构造方法实现数据转模型----重写构造方法
    init(dict: [String: AnyObject]){
        super.init()
        //字典转模型
        setValuesForKeysWithDictionary(dict)//会调用setvalueforkey方法
    }
    
    //重写setvalueforkey方法
    override func setValue(value: AnyObject?, forKey key: String) {
        //如果是子模型的话,让子模型再去转换
        if key == "user" {
            //如果获取到的数据是字典
            if let dict = value as? [String: AnyObject]{
                 user = ZHStatusUserModel(dict: dict)
            }else{
                //数据不是字典
                //printLog("数据不是字典")
            }
        }else if(key == "retweeted_status"){
            //如果取到的是字典
            if let dict = value as? [String: AnyObject]{
                retweeted_status = ZHStatusModel(dict: dict)
            }else{
                //数据不是字典
                //printLog("数据不是字典")
            }
        }else{
            super.setValue(value, forKey: key)
        }
    }
    
    //赋值崩溃的解决方法-----重写
    override func setValue(value: AnyObject?, forUndefinedKey key: String) {
        //printLog("setValue错误")
    }
    
    //重写desc属性-----计算属性
    override var description:String {
        let keys = ["text", "retweeted_status"]
        return dictionaryWithValuesForKeys(keys).description
    }
}
















